package com.whiteape.book.model.dto;

import com.whiteape.book.utils.GsonUtils;

import org.greenrobot.greendao.converter.PropertyConverter;

import java.io.Serializable;
import java.util.Map;

public class SiteSourceContentInfoBean implements PropertyConverter<SiteSourceContentInfoBean, String>, Serializable {
    /**
     * 很多漫画源，是一个页面一张图，这里表示一个章节的多个页面的url获取规则
     * 内置一些变量可用{{$CUR_LINK}}, {{$CUR_HTML}}
     *
     * $JS.xxxxxxx    getResult()    $CURL_LINK, $CUR_HTML, $PAGE_TOTAL
     *
     * 暂时只支持JS
     */
    private String pageLinkList;

    //$RE({{CUR_LINK}},
    //
    /**
     * 页面数量
     */
    private String pageTotal;

    /**
     * 下一页 按钮的规则, 只有当pageTotal无法找出来的时候才用，当下一页无法获取图片的时候就返回
     * 对于那种可以一直下一页的，就没办法了
     */
    private String pageNext;

    /**
     * 内容列表，对于小说可能没有，对于漫画，会有，一般是一系列 ul > li
     */
    private String contentList;

    /**
     * 具体怎么提取正文/图片url
     */
    private String content;


    private Map<String, String> headers;



    @Override
    public SiteSourceContentInfoBean convertToEntityProperty(String databaseValue) {
        return GsonUtils.string2Obj(databaseValue, SiteSourceContentInfoBean.class);
    }

    @Override
    public String convertToDatabaseValue(SiteSourceContentInfoBean entityProperty) {
        return GsonUtils.obj2String(entityProperty);
    }

    public Map<String, String> getHeaders() {
        return headers;
    }

    public void setHeaders(Map<String, String> headers) {
        this.headers = headers;
    }

    public String getPageLinkList() {
        return pageLinkList;
    }

    public void setPageLinkList(String pageLinkList) {
        this.pageLinkList = pageLinkList;
    }

    public String getPageTotal() {
        return pageTotal;
    }

    public void setPageTotal(String pageTotal) {
        this.pageTotal = pageTotal;
    }

    public String getPageNext() {
        return pageNext;
    }

    public void setPageNext(String pageNext) {
        this.pageNext = pageNext;
    }

    public String getContentList() {
        return contentList;
    }

    public void setContentList(String contentList) {
        this.contentList = contentList;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    @Override
    public String toString() {
        return "SiteSourceContentInfoBean{" +
                "pageLinkList='" + pageLinkList + '\'' +
                ", pageTotal=" + pageTotal +
                ", pageNext='" + pageNext + '\'' +
                ", contentList='" + contentList + '\'' +
                ", content='" + content + '\'' +
                '}';
    }
}
